#-*- coding: utf-8 -*-

## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 2 of the License, or
## (at your option) any later version.

## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
## GNU General Public License for more details.

## You should have received a copy of the GNU General Public License
## along with this program; if not, write to the Free Software
## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

"""Módulo para analizar la lina de comandos de pyragua.

parse_command_line -- Función que utiliza un OptionParser definiendo las
                      opciones que acepta pyragua.  Retorna un diccionario
                      con las opciones, y los argumentos.
                      
Los atributos que retorna en options son los siguientes:

config_file -- La ruta hacia un archivo de configuración.

no_config -- Booleano. Indica si Pyragua fue iniciado con la opción de
             no cargar configuración inicial.

verbose -- Booleano. Indica si fue cargado en el modo verboso.
"""

from optparse import OptionParser

usage = "usage: %prog [opciones] [archivo ...]"
version = '0.4'

def parse_command_line(args=None):
    """ Funcion que utilizando optparse analiza la linea enviada a Pyragua
    y retorna los valores de parse_args.

    args -- Estos argumentos son directamente enviados a parse_args.

    """ 
    parser = OptionParser(usage=usage, version=version)
    parser.set_defaults(verbose=False,
                        no_config=True)
    # Archivo de configuración
    parser.add_option('-t', dest="config_file",
                      help='Carga la configuracion'
                      ' indicada por config_file')
    # No carga archivo de configuración inicial
    parser.add_option('-q', action='store_false', dest='no_config',
                      help='No carga un archivo de configuración')
    # Verbose mode para pyragua (?)
    # Cambiar el nivel del logging (?)
    parser.add_option('-v', '--verbose', action='store_true', dest='verbose',
                      help='Modo verboso para pyragua')

    return parser.parse_args(args)

if __name__ == '__main__':
    (options, args) = parse_command_line()
    print options, '\n', args
